package com.neuedu.hisboot.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.neuedu.hisboot.entity.TemplateInfo;
import com.neuedu.hisboot.mapper.TemplateInfoMapper;
import com.neuedu.hisboot.service.ITemplateInfoService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * 病历模板信息管理服务实现类
 * </p>
 *
 * @author jaun
 * @since 2025-07-04
 */
@Service
public class TemplateInfoServiceImpl extends ServiceImpl<TemplateInfoMapper, TemplateInfo> implements ITemplateInfoService {

    @Override
    public TemplateInfo getByTemplateNumber(String templateNumber) {
        QueryWrapper<TemplateInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("templateNumber", templateNumber);
        queryWrapper.eq("delMark", 1);
        return this.getOne(queryWrapper);
    }

    @Override
    public List<TemplateInfo> getByDoctorId(Integer doctorId) {
        QueryWrapper<TemplateInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("doctorId", doctorId);
        queryWrapper.eq("delMark", 1);
        return this.list(queryWrapper);
    }

    @Override
    public List<TemplateInfo> searchByChiefComplaint(String chiefComplaint) {
        QueryWrapper<TemplateInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("chiefComplaint", chiefComplaint);
        queryWrapper.eq("delMark", 1);
        return this.list(queryWrapper);
    }

    @Override
    public List<TemplateInfo> searchByDiagnosis(String diagnosis) {
        QueryWrapper<TemplateInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("preliminaryDiagnosis", diagnosis);
        queryWrapper.eq("delMark", 1);
        return this.list(queryWrapper);
    }

    @Override
    public List<TemplateInfo> searchByIllness(String illness) {
        QueryWrapper<TemplateInfo> queryWrapper = new QueryWrapper<>();
        queryWrapper.like("preliminaryDiagnosis", illness);
        queryWrapper.eq("delMark", 1);
        return this.list(queryWrapper);
    }
}

